﻿/* File Created: abril 24, 2013 */

$(document).ready(function () {
    $('#btnAgregarSprint').button();

    cargarSprints();
    cargarSelectProyectos();

    function cargarSelectProyectos() {
        $.post(window.location.href, { action: 'CargarSelectProyectos', id: 'selectProyectos' }, function (response) {
            $('#divSeleccionarProyecto').html('Seleccionar proyecto: ' + response);

            $('#selectProyectos').change(function () {
                cargarSprints();
            });

            cargarSprints();
        });
    }

    function cargarSprints() {
        $.post(window.location.href, { action: 'CrearContenidoSprints', proyecto: $('#selectProyectos').val() }, function (response) {
            $('#divSprints').html(response);
            $('#divSprints').show('fade', 500);

            modificarSprint();
            eliminarSprint();
            modificarRequerimientosSprint();
        });
    }

    function modificarSprint() {
        $('#tblSprints').on({
            click: function () {
                var boton = $(this);

                var id = boton.attr('data-id');
                var descripcion = boton.attr('data-descripcion');
                var numero = boton.attr('data-numero');
                var fechaInicio = boton.attr('data-fechaInicio');
                var proyecto = boton.attr('data-proyecto');

                $.post(window.location.href, { action: 'CrearDialogoAgregarSprint' }, function (response) {
                    $('#modal').html(response);

                    $('#txtNumero').spinner({
                        min: 1,
                        numberFormat: "n",
                        incremental: 1
                    });

                    $('#txtFechaInicio').datepicker({
                        dateFormat: 'dd/mm/yy',
                        minDate: -0
                    });

                    $('#selectProyectosDialogo').val(proyecto);
                    $('#txtDescripcion').val(descripcion);
                    $('#txtNumero').val(numero);
                    $('#txtFechaInicio').val(fechaInicio);
                });

                $('#modal').dialog({
                    title: 'Modificación de Sprint',
                    resizable: false,
                    draggable: false,
                    modal: true,
                    width: 350,
                    height: 300,
                    show: {
                        effect: "blind",
                        duration: 300
                    },
                    hide: {
                        effect: "blind",
                        duration: 300
                    },
                    buttons: {
                        Aceptar: function () {
                            var currentProyecto = $('#selectProyectosDialogo').val();
                            var currentDescripcion = $('#txtDescripcion').val();
                            var currentNumero = $('#txtNumero').val();
                            var currentFechaInicio = $('#txtFechaInicio').val();
                            $.post(window.location.href, { action: 'ModificarSprint', id: id, descripcion: currentDescripcion, numero: currentNumero, fechaInicio: currentFechaInicio, proyecto: currentProyecto }, function (response) {
                                dialogo(response);
                                cargarSprints();
                            });
                        },
                        Cancelar: function () {
                            $(this).dialog('close');
                        }
                    }
                });
            }
        }, 'span#btnEditarSprint');
    }

    function crearDialgoModificarRequerimientos(id, proyecto) {
        $.post(window.location.href, { action: 'CrearDialogoAsignarRequerimientos', id: id, proyecto: proyecto }, function (response) {
            $('#modal').html(response);
            asignarRequerimientos(id, proyecto);
            denegarRequerimientos(id, proyecto);
        });
    }

    function modificarRequerimientosSprint() {
        $('#tblSprints').on({
            click: function () {
                var boton = $(this);

                var id = boton.attr('data-id');
                var proyecto = boton.attr('data-proyecto');

                crearDialgoModificarRequerimientos(id, proyecto);

                $('#modal').dialog({
                    title: 'Asignación de requerimientos a Sprint',
                    resizable: false,
                    draggable: false,
                    modal: true,
                    width: 500,
                    height: 600,
                    show: {
                        effect: "blind",
                        duration: 300
                    },
                    hide: {
                        effect: "blind",
                        duration: 300
                    },
                    buttons: {
                        Aceptar: function () {
                            cargarSprints();
                            $(this).dialog('close');
                        },
                        Cancelar: function () {
                            $(this).dialog('close');
                        }
                    }
                });
            }
        }, 'span#btnAsignarRequerimientos');
    }

    function denegarRequerimientos(id, proyecto) {
        $('input[name=checkBoxRequerimientosUtilizados]').change(function () {

            var valores = '';
            var comma = ',';
            var lista = new Array();
            $('input[name=checkBoxRequerimientosUtilizados]').each(function () {
                var check = $(this);
                if (!this.checked) {
                    lista.push(check.attr('value'));
                }
            });

            for (var item in lista) {

                if (item == lista.length - 1)
                    comma = '';
                valores += lista[item] + comma;
            }

            if (lista.length != 0)
                $.post(window.location.href, { action: 'DenegarRequerimientos', id: id, valores: valores }, function () {
                    crearDialgoModificarRequerimientos(id, proyecto);
                });
        });
    }

    function asignarRequerimientos(id, proyecto) {
        $('input[name=checkBoxRequerimientosDisponibles]').change(function () {

            var valores = '';
            var comma = ',';
            var lista = new Array();
            $('input[name=checkBoxRequerimientosDisponibles]').each(function () {
                var check = $(this);
                if (this.checked) {
                    lista.push(check.attr('value'));
                }
            });

            for (var item in lista) {

                if (item == lista.length - 1)
                    comma = '';
                valores += lista[item] + comma;
            }

            if (lista.length != 0)
                $.post(window.location.href, { action: 'AsignarRequerimientos', id: id, valores: valores }, function () {
                    crearDialgoModificarRequerimientos(id, proyecto);
                });
        });
    }

    function eliminarSprint() {
        $('#tblSprints').on({
            click: function () {
                var boton = $(this);

                var id = boton.attr('data-id');

                $('#modal').html('¿Está seguro que desea eliminar este Sprint?');

                $('#modal').dialog({
                    title: 'Eliminación de Sprint',
                    resizable: false,
                    draggable: false,
                    modal: true,
                    width: 400,
                    height: 150,
                    show: {
                        effect: "blind",
                        duration: 300
                    },
                    hide: {
                        effect: "blind",
                        duration: 300
                    },
                    buttons: {
                        Aceptar: function () {
                            $.post(window.location.href, { action: 'EliminarSprint', id: id }, function (response) {
                                dialogo(response);
                                cargarSprints();
                            });
                        },
                        Cancelar: function () {
                            $(this).dialog('close');
                        }
                    }
                });
            }
        }, 'span#btnEliminarSprint');
    }

    $('#btnAgregarSprint').click(function () {

        $.post(window.location.href, { action: 'CrearDialogoAgregarSprint' }, function (response) {
            $('#modal').html(response);

            $('#txtNumero').spinner({
                min: 1,
                numberFormat: "n",
                incremental: 1
            });

            $('#txtFechaInicio').datepicker({
                dateFormat: "dd/mm/yy",
                minDate: -0
            });
        });

        $('#modal').dialog({
            title: 'Crear nuevo Sprint',
            resizable: false,
            draggable: false,
            modal: true,
            width: 300,
            height: 350,
            show: {
                effect: "blind",
                duration: 300
            },
            hide: {
                effect: "blind",
                duration: 300
            },
            buttons: {
                Aceptar: function () {

                    if ($('#txtNumero').val() == '') {
                        $('#txtNumero').focus();
                        return false;
                    }

                    if ($('#txtFechaInicio').val() == '') {
                        $('#txtFechaInicio').focus();
                        return false;
                    }

                    if ($('#txtDescripcion').val() == '') {
                        $('#txtDescripcion').focus();
                        return false;
                    }

                    $.post(window.location.href, { action: 'RegistrarSprint', descripcion: $('#txtDescripcion').val(), numero: $('#txtNumero').val(), fechaInicio: $('#txtFechaInicio').val(), proyecto: $('#selectProyectosDialogo').val()
                    }, function (response) {
                        dialogo(response);
                        cargarSprints();
                    });

                    $(this).dialog('close');
                },
                Cancelar: function () {
                    $(this).dialog('close');
                }
            }
        });
    });

    function dialogo(mensaje) {
        $('#modal').dialog({
            title: 'Aviso',
            resizable: false,
            draggable: false,
            modal: true,
            width: 300,
            height: 200,
            show: {
                effect: "fade",
                duration: 200
            },
            hide: {
                effect: "fade",
                duration: 200
            },
            buttons: {
                Aceptar: function () {
                    $(this).dialog('close');
                }
            }
        }).html(mensaje);
    }
});